Plug some leaks.
authorCarlos Garnacho <carlosg@gnome.org>
Tue, 5 Oct 2010 23:04:06 +0000 (01:04 +0200)
committerCarlos Garnacho <carlosg@gnome.org>
Sat, 4 Dec 2010 14:38:18 +0000 (15:38 +0100)
gtk/gtk9slice.c
gtk/gtkcssprovider.c
gtk/gtksettings.c

index 9bfdafb914e7ef0364a5f6414f78fd46bcb5727d..7cd6ad47abc2395684db34265efafc009816c2b4 100644 (file)
@@ -177,6 +177,8 @@ gtk_9slice_new (GdkPixbuf            *pixbuf,
   cairo_paint (cr);
   cairo_destroy (cr);
 
+  cairo_surface_destroy (surface);
+
   return slice;
 }
 
@@ -217,6 +219,8 @@ render_border (cairo_t              *cr,
   cairo_rectangle (cr, x, y, width, height);
   cairo_fill (cr);
 
+  cairo_pattern_destroy (pattern);
+
   cairo_restore (cr);
 }
 
index d5d552cff54e9cf396f11da0cba35c8b98c4c457..8236022e5018b1a0119be9c91ec03093cd28c343 100644 (file)
@@ -1239,6 +1239,7 @@ symbolic_color_parse_str (const gchar  *string,
         }
 
       symbolic_color = gtk_symbolic_color_new_shade (param_color, factor);
+      gtk_symbolic_color_unref (param_color);
       (*end_ptr)++;
     }
   else if (g_str_has_prefix (str, "mix"))
@@ -1309,6 +1310,8 @@ symbolic_color_parse_str (const gchar  *string,
         }
 
       symbolic_color = gtk_symbolic_color_new_mix (color1, color2, factor);
+      gtk_symbolic_color_unref (color1);
+      gtk_symbolic_color_unref (color2);
       (*end_ptr)++;
     }
 
@@ -1617,6 +1620,7 @@ slice_parse_str (GtkCssProvider  *css_provider,
   GtkSliceSideModifier mods[2];
   GError *error = NULL;
   GdkPixbuf *pixbuf;
+  Gtk9Slice *slice;
   gchar *path;
   gint i = 0;
 
@@ -1640,6 +1644,8 @@ slice_parse_str (GtkCssProvider  *css_provider,
 
       full_path = g_build_filename (dirname, path, NULL);
       g_free (path);
+      g_free (dirname);
+
       path = full_path;
     }
 
@@ -1715,10 +1721,13 @@ slice_parse_str (GtkCssProvider  *css_provider,
       return NULL;
     }
 
-  return gtk_9slice_new (pixbuf,
-                         distance_top, distance_bottom,
-                         distance_left, distance_right,
-                         mods[0], mods[1]);
+  slice = gtk_9slice_new (pixbuf,
+                          distance_top, distance_bottom,
+                          distance_left, distance_right,
+                          mods[0], mods[1]);
+  g_object_unref (pixbuf);
+
+  return slice;
 }
 
 static Gtk9Slice *
index 3cde000bba0a739c5e08e4abff147804063f07c7..278890908c6ba8d200bab859e13924d1f9a4db87 100644 (file)
@@ -1276,6 +1276,7 @@ gtk_settings_get_style (GtkStyleProvider *provider,
 
   for (i = 0; colors[i]; i++)
     {
+      GtkSymbolicColor *color;
       gchar *name, *pos;
       GdkColor col;
 
@@ -1299,8 +1300,9 @@ gtk_settings_get_style (GtkStyleProvider *provider,
       if (!*pos || !gdk_color_parse (pos, &col))
         continue;
 
-      gtk_style_set_map_color (set, name,
-                               gtk_symbolic_color_new_literal (&col));
+      color = gtk_symbolic_color_new_literal (&col);
+      gtk_style_set_map_color (set, name, color);
+      gtk_symbolic_color_unref (color);
     }
 
   font_desc = pango_font_description_from_string (font_name);